<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
   
    <title>vue初识</title>
    <script type="text/javascript" src="../js/vue.js"></script> <!-- vue引入 -->
    <script type="text/javascript">
        Vue.config.productionTip=false; //阻止vue在启动时产生提示
        window.onload = function() { //页面加载完成在加载该方法
            
           /**
                1.想让Vue工作,就必须创建一个Vue实列,且要传入一个配置对象
                2.root容器里的代码依然符合html规范,只不过混入了一些特殊的Vue语法
                3.root容器里的代码被称为【Vue模板】
                4.Vue实例和容器是一对一对应的,如果出现2个id=root默认只生效第一个
                5.真实开发中只有一个Vue实列,并且会配合这组件一起使用
                6.{{xxx}}中的xxx要写js表达式,且xxx可以自动读取到data中的所有属性
                7.一旦data中的数据发送改变,那么页面中用到该数据的地方都会自动更新改变；

                注意区分：js表达式 和js代码(语句)
                    1.表达式：一个表达式会产生一个值, 可以放在任何一个需要值的地方
                            (1). a 变量
                            (2). a + b 加法运算
                            (3). demo(1) 函数调用
                            (4). x === y? 'a':'b'; 三元运算
                    2.js代码(语句)
                            (1). if(){}
                            (2). for(){}
            */
            const vm = new Vue({
                //el: '#root', //el第一种写法：用于指定当前Vue实列为哪个容器服务,值通常为css选择器字符串、与页面标签容器一对一，如果出现2个id=root默认只生效第一个
                //el: document.getElementById('root'), //也可以使用js代码如：document.getElementById('root');、不常用、知道一下就好
                
                /*data: { //data、对象式方式：中数据用于存储数据,数据供el所指定的容器去使用
                    name: '段永红' //name值与页面标签里面的{{name}}相对应
                }*/

                data: function() { //data、函数式方式,组件的时候data必须使用函数式方式，否则会报错，不能使用箭头函数否则this就不是Vue实例了
                    return {name: '段永红'}
                }// 简写：data(){}
            });

            vm.$mount('#root'); //el的第二种写法、该方式更灵活,推荐使用

            vm._data.name = "段永红2"; //手动修改data里面的值要使用"_data.xxx"
        }

        

    </script>
</head>
<body>
    <div id="root">你好我是：{{name}}</div>
</body>
</html>